For the purposes of computing and digital signal processing, in particular for telecommunication, it is known in the art to represent numbers as binary data words. Such a binary data word typically is representative of some real world value. In the case of digital signal processing such a binary data word typically represents a sampled value of some real process like sampled speech or video data.
To represent a number in a binary data word for the purposes of computing or digital signal processing a number of approaches are commonly used in the prior art. Integer numbers are usually represented in 2' complement. In the 2'complement form the most significant bit holds the sign if the data word is not declared to be an unsigned integer value. The 2' complement of a binary number is found by reversing all the digits of the number and then adding one. For example, the 2' complement of 0001 is 1110+1=1111. In mathematical terms the 2' complement x' of a number x is EQU x'=2.sup.k -x
Where both x' and x are represented as a binary number with k digits.
The most popular representation for floating--point numbers is the format according to ANSI/IEEE standard 754-1985 which has been implemented by nearly all floating-point chip sets including Intel's 8087/287/387, Motorola's 68881 as well as chip sets from AMD. The IEEE standard is therefore universal in microcomputers that accept those chips, including the IBM PC.
The way a number is electronically represented for computing purposes is highly influential on the performance of the computing or digital signal processing system which process such a number and therefore on the expense in terms of hardware to obtain a given computing throughput.
By definition, digital signal processing is connected with the representation of signals by sequences of numbers or symbols and the processing of these signals. DSP has a wide variety of applications and its importance is evident in such fields as pattern recognition, radio communications, telecommunications, radar, biomedical engineering, and many others.
At the heart of every DSP system is a computer processor that performs mathematical operations on signals. Generally, signals received by a DSP system are first converted to a digital format used by the computer processor. Then the computer processor executes a series of mathematical operations on the digitized signal. The purpose of these operations can be to estimate characteristic parameters of the signal or to transform the signal into a form that is in some sense more desirable. Such operations typically implement complicated mathematics and entail intensive numerical processing. Examples of mathematical operations that may be performed in DSP systems include matrix multiplication, matrix-inversion, Fast Fourier Transforms (FFT), auto and cross correlation, Discrete Cosine Transforms (DCT), polynomial equations, and difference equations in general, such as those used to approximate Infinite Impulse Response (IIR) and Finite Impulse Response (FIR) filters.
Computer processors vary considerably in design and function. One aspect of a processor design is its architecture. Generally, the term computer architecture refers to the instruction set and organization of a processor. An instruction set is a group of programmer-visible instructions used to program the processor. The organization of a processor, on the other hand, refers to its overall structure and composition of computational resources, for example, the bus structure, memory arrangement, and number of processing elements.
In a computer, a number of different organizational techniques can be used for increasing execution speed. One technique is execution overlap.
Execution overlap is based on the notion of operating a computer like an assembly line with an unending series of operations in various stages of completion. Execution overlap allows these operations to be overlapped and executed simultaneously.
One commonly used form of execution overlap is pipelining. In a computer, pipelining is an implementation technique that allows a sequence of the same operations to be performed on different arguments. Computation to be done for a specific instruction is broken into smaller pieces, i.e., operations, each of which takes a fraction of the time needed to complete the entire instruction. Each of these pieces is called a pipe stage. The stages are connected in a sequence to form a pipeline--arguments of the instruction enter at one end, are processed through the stages, and exit at the other end.
These are many different architectures, ranging from complex-instruction-set-computer (CISC) to reduced-instruction-set-computer (RISC) based architectures. In addition, some architectures have only one processing element, while others include two or more processing elements. Despite differences in architectures, all computer processors have a common goal, which is to provide the highest performance at the lowest cost. However, the performance of a computer processor is highly dependent on the problem to which the processor is applied, and few, if any, low-cost computer processors are capable of performing the mathematical operations listed above at speeds required for some of today's more demanding applications. For example, MPEG data compression of an NTSC television signal can only be performed using expensive supercomputers or special purpose hardware.
Many other applications, such as matrix transformations in real-time graphics, require data throughput rates that exceed the capabilities of inexpensive, single processors, such as micro processors and commercially available DSP chips. Instead, these applications require the use of costly, multiprocessor or multiple-processor computers. Although multiprocessor computers typically have higher throughput rates, they also include complex instruction sets and are generally difficult to program.
Therefore there is a need to provide for an improved method for electronically representing a number in a binary data word, an improved adder circuit and microprocessor incorporating such an adder circuit and an improved computer system.